﻿using System;
using System.Diagnostics.CodeAnalysis;

namespace ChessKit.Properties
{
	/// <summary>
	/// This attribute is intended to mark publicly available API which should not be removed and so is treated as used.
	/// </summary>
	[SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Api",
	  Justification = "API mean application public interface")]
	[MeansImplicitUse(ImplicitUseTargetFlags.WithMembers)]
	[AttributeUsage(AttributeTargets.All, AllowMultiple = false, Inherited = true)]
	[UsedImplicitly(ImplicitUseTargetFlags.WithMembers)]
	internal sealed class PublicApiAttribute : Attribute
	{
		public string Comment { get; private set; }

		public PublicApiAttribute() { }
		[SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "comment",
		  Justification = "Jetbrains thinks so")]
		public PublicApiAttribute(string comment)
		{
			Comment = comment;
		}
	}
}